﻿// =====================================================
// Copyright (C) 2016-2020 Fanjia
// All rights reserved
// 机器名称: PC-LIWEI
// 创建时间: 2020/2/12 20:04:44
// 创 建 人: 李伟
// ======================================================

using System.Collections.Generic;

namespace WindowsFormsApplication1.RSA.Dto
{
    public class RequestDto
    {
        /// <summary>
        /// 加密数据
        /// </summary>
        public string EncryptedData { get; set; }

        public string From { get; set; } = "FANJIA";
    }

    public class Base
    {
        /// <summary>
        /// 企业代码
        /// </summary>
        public string CompanyCode { get; set; }
    }

    /// <summary>
    /// 接口响应基类DTO
    /// </summary>
    /// <typeparam name="T"></typeparam>
    public class ResultDto<T>
    {
        public string Code { get; set; }

        public string Msg { get; set; }

        public T Data { get; set; }

    }

    public class CompanyInfo : Base
    {
        /// <summary>
        /// 企业名称
        /// </summary>
        public string CompanyName { get; set; }
    }

    /// <summary>
    /// 员工集合DTO
    /// </summary>
    public class EmployeeList : Base
    {
        public List<Employee> Employees { get; set; }

        //public string From { get; set; } = "FANJIA";
    }

    /// <summary>
    /// 员工信息
    /// </summary>
    public class Employee
    {
        /// <summary>
        /// 员工ID（如果不存在则新增，否则更新）
        /// </summary>
        public string EmployeeId { get; set; }
        /// <summary>
        /// 员工姓名
        /// </summary>
        public string EmployeeName { get; set; }
        /// <summary>
        /// 员工工号
        /// </summary>
        public string EmployeeNumber { get; set; }
        /// <summary>
        /// 手机
        /// </summary>
        public string Mobile { get; set; }
        /// <summary>
        /// 状态（0：离职；1：在职）
        /// </summary>
        public string Status { get; set; }
    }

    /// <summary>
    /// 员工信息校验失败信息
    /// </summary>
    public class EmpValidError
    {
        /// <summary>
        /// 校验失败的员工ID
        /// </summary>
        public string Id { get; set; }
        /// <summary>
        /// 校验失败的参数名称
        /// </summary>
        public string PropertyName { get; set; }
        /// <summary>
        /// 校验失败的原因说明
        /// </summary>
        public string ErrorMessage { get; set; }
    }

    /// <summary>
    /// 支付请求DTO
    /// </summary>
    public class PayRequest : Base
    {
        /// <summary>
        /// 商品描述
        /// </summary>
        public string Body { get; set; }

        /// <summary>
        /// 商品详情（报表字段JSON数据）
        /// </summary>
        public string Detail { get; set; }

        /// <summary>
        /// 机票：flight;酒店：hotel;火车票:train
        /// </summary>
        public string BizType { get; set; }

        /// <summary>
        /// 附加参数
        /// </summary>
        public string Attach { get; set; }

        /// <summary>
        /// 订单号
        /// </summary>
        public string OutTradeNo { get; set; }

        /// <summary>
        /// 支付金额（单位元）
        /// </summary>
        public string TotalFee { get; set; }

        /// <summary>
        /// 终端ip
        /// </summary>
        public string Ip { get; set; }

        /// <summary>
        /// 员工ID
        /// </summary>
        public string EmployeeId { get; set; }
    }

    /// <summary>
    /// 支付结果DTO
    /// </summary>
    public class PayResult
    {
        /// <summary>
        /// 第三方订单号
        /// </summary>
        public string PayOrderNo { get; set; }

        /// <summary>
        /// 机票：flight;酒店：hotel;火车票:train
        /// </summary>
        public string BizType { get; set; }

        /// <summary>
        /// 附加参数
        /// </summary>
        public string Attach { get; set; }

        /// <summary>
        /// 订单号
        /// </summary>
        public string OutTradeNo { get; set; }

        /// <summary>
        /// 支付金额（单位元）
        /// </summary>
        public string TotalFee { get; set; }

        /// <summary>
        /// 第三方用户Id
        /// </summary>
        public string BuyerId { get; set; }

        /// <summary>
        /// PERMITTED授信成功;NOT_PERMITTED授信失败
        /// </summary>
        public string State { get; set; }

    }

    /// <summary>
    /// 申请退款请求DTO
    /// </summary>
    public class RefundRequest : Base
    {
        /// <summary>
        /// 外部退款单号
        /// </summary>
        public string OutRefundNo { get; set; }

        /// <summary>
        /// 订单号（原消费单号）
        /// </summary>
        public string OutTradeNo { get; set; }

        /// <summary>
        /// 支付金额（单位元）
        /// </summary>
        public string RefundFee { get; set; }

        /// <summary>
        /// 员工ID
        /// </summary>
        public string EmployeeId { get; set; }
    }

    /// <summary>
    /// 申请退款结果DTO
    /// </summary>
    public class RefundResult
    {
        /// <summary>
        /// 外部退款单号
        /// </summary>
        public string OutRefundNo { get; set; }

        /// <summary>
        /// 第三方退款单号
        /// </summary>
        public string RefundId { get; set; }

        /// <summary>
        /// 原订单号
        /// </summary>
        public string OutTradeNo { get; set; }

        /// <summary>
        /// 退款金额（单位元）
        /// </summary>
        public string RefundFee { get; set; }

        /// <summary>
        /// 原支付金额（单位元）
        /// </summary>
        public string TotalFee { get; set; }
    }

    /// <summary>
    /// 支付订单查询DTO
    /// </summary>
    public class PayQueryRequest : Base
    {
        /// <summary>
        /// 交易订单号
        /// </summary>
        public string OutTradeNo { get; set; }
    }

    /// <summary>
    /// 支付订单查询返回结果
    /// </summary>
    public class PayQueryResult
    {
        /// <summary>
        /// 支付订单号
        /// </summary>
        public string PayOrderNo { get; set; }

        /// <summary>
        /// 附加参数
        /// </summary>
        public string Attach { get; set; }

        /// <summary>
        /// 原交易订单号
        /// </summary>
        public string OutTradeNo { get; set; }

        /// <summary>
        /// 支付金额（单位元）
        /// </summary>
        public string TotalFee { get; set; }

        /// <summary>
        /// 第三方用户Id
        /// </summary>
        public string BuyerId { get; set; }
    }

    /// <summary>
    /// 退款订单查询请求DTO
    /// </summary>
    public class RefundQueryRequest : Base
    {
        /// <summary>
        /// 外部退款单号
        /// </summary>
        public string OutRefundNo { get; set; }

        /// <summary>
        /// 原交易订单号
        /// </summary>
        public string OutTradeNo { get; set; }
    }

    /// <summary>
    /// 退款订单查询结果DTO
    /// </summary>
    public class RefundQueryResult
    {
        /// <summary>
        /// 外部退款单号
        /// </summary>
        public string OutRefundNo { get; set; }

        /// <summary>
        /// 第三方退款单号
        /// </summary>
        public string RefundId { get; set; }

        /// <summary>
        /// 原订单号
        /// </summary>
        public string OutTradeNo { get; set; }

        /// <summary>
        /// 退款金额（单位元）
        /// </summary>
        public string RefundFee { get; set; }

        /// <summary>
        /// 原支付金额（单位元）
        /// </summary>
        public string TotalFee { get; set; }
    }
}
